﻿//9. Write a method that return the maximal element in a portion of array of integers starting at given index.
//Using it write another method that sorts an array in ascending / descending order.


using System;
using System.Collections.Generic;

class MaximalElementAndSortArray
{
    static void Main()
    {
        int[] arr = {2, 5, 9, 4, 5, 2, 0, 4, 7};
        SortArr(arr);
        foreach (var e in arr)
        {
            Console.Write("{0}, ", e);
        }
    }
    static void SortArr(int[] arr)
    {
        int SwapWhitMax = 0;                        //За да сортира елементите в масива във възходящ ред
        for (int i = 0; i < arr.Length; i++)        //цикъла се прави да върти от последния към нулевия елемент.
        {
            SwapWhitMax = arr[i];
            int maxValueIndex = MaximalArraysElement(arr, i, arr.Length - 1);
            arr[i] = arr[maxValueIndex];
            arr[maxValueIndex] = SwapWhitMax;
        }
    }
    static int MaximalArraysElement(int[] arr, int start, int end)
    {
        int maximal = int.MinValue;
        int maxValueIndex = start;
        for (int i = start; i <= end; i++)
        {
            if (arr[i] > maximal)
            {
                maximal = arr[i];
                maxValueIndex = i;
            }
        }
        return maxValueIndex;
    }
}
